Перейти к основному содержимому

20 типичных уязвимостей в коде

· 1 мин. чтения

Я думаю самая главная ошибка - между креслом и клавиатурой, но если разбирать больше чем "не заметил" и предположить что новички не совсем знают о критических ошибках которые могут вызвать серъёзные последствия типа потери данных, вызова инородного кода, недоступность сервиса или кражи данных, то чёрный список выстроится следующим образом:

  1. Неверная валидация ввода данных
  2. Неправильная кодировка или отсутсвие обработки данных вывода
  3. SQL-инъекция
  4. Cross-site scripting
  5. Неограниченность в консольном доступе (OS-инъекция)
  6. Передача личных данных по малозащищённому каналу
  7. Межсайтовый запрос как подделка внутреннего запроса
  8. Соревнование потоков использующих один ресурс и неверное закрытие его использования
  9. Слишком информативное содержание об ошибке
  10. Выход указателя программы за пределы отведённой памяти
  11. Внешнее управление внутренними переменными и файловыми путями
  12. Генерируемый код и его потенциальная инъекция
  13. Автообновление программы полученным кодом без подтверждения источника
  14. Грязная инициализация - доступны данные предыдущих инициализаций
  15. Математика с ограниченными числами
  16. Ненадёжная авторизация и за-hard-коденые пароли
  17. Использование подверженного риску или взломанному алгоритму криптографии
  18. Исполнение с повышенными привилегиями
  19. Использование недостаточно случайных чисел
  20. Валидация на стороне клиента но не на стороне сервера

По мотивам "Top 25 most dangerous programming errors"